package parDef

type AxisOrder int

const (
	AxisOGC  AxisOrder = iota // 不翻转，保持 [lon,lat] [lon, lat]
	AxisEPSG                  // [lat, lon] for some EPS_G like 4326 (if you choose to enforce)
)

type GisValWkt struct {
	SRid     string    `json:"sRid"`
	Axis     AxisOrder `json:"axis"`
	Type     string    `json:"type"`
	Latitude int       `json:"latitude"` //纬度 2表示2d，3表示3d
	Coords   any       `json:"coords"`
}
type VirtualColumn struct {
	Exist         bool   //是否是虚拟列
	StorageMethod string //定义存储方式 VIRTUAL: 动态计算，不占用额外存储，适合简单计算  STORED: 预先计算并存储，适合复杂计算或高频读取
	Body          string //定义虚拟列的body
}
type OnUpdate struct {
	Exist bool //是否是ON UPDATE
	Body  string
}
type ColumnMeta struct {
	DatabaseName  string        `json:"databaseName"`
	TableName     string        `json:"tableName"`
	ColumnName    string        `json:"columnName"`
	ColumnType    string        `json:"columnType"` //原始的数据类型，不带长度的
	ColumnSeq     string        `json:"columnSeq"`
	IsNull        string        `json:"isNull"` //
	Charset       string        `json:"charset"`
	CollationName string        `json:"collationName"`
	ColumnComment string        `json:"columnComment"`
	ColumnDefault string        `json:"columnDefault"`
	DataType      string        `json:"dataType"` //处理过的数据类型，带长度的
	DataLength    int64         `json:"dataLength"`
	CharLength    int64         `json:"charLength"`
	DataPrecision int64         `json:"dataPrecision"`
	DataScale     int64         `json:"dataScale"`
	Invisible     bool          `json:"invisible"`
	Virtual       VirtualColumn `json:"virtual"`
	AutoIncrement bool
	OnUpdate      OnUpdate //数据插入或更新时是否自动更新列的时间戳
}

type Constraints struct {
	Name string `json:"name"`
	Body string `json:"body"`
}
